package models

import (
	"gorm.io/gorm"
)

// 话题模型
type Topic struct {
	gorm.Model
	Name        string `json:"name"`        // 话题名称，如 "#Golang"
	Description string `json:"description"` // 话题描述
}

func (t *Topic) TableName() string {
	return "topics"
}

// 推文与话题关联
type TweetTopic struct {
	gorm.Model
	TweetID int64 `json:"tweet_id"`
	TopicID int64 `json:"topic_id"`
}

func (t *TweetTopic) TableName() string {
	return "tweet_topic"
}

// 用户关注话题
type UserFollowTopic struct {
	gorm.Model
	UserID  int64 `json:"user_id"`
	TopicID int64 `json:"topic_id"`
}

// 点赞模型
type Like struct {
	gorm.Model
	UserID  int64 `json:"user_id"`
	TweetID int64 `json:"tweet_id"`
}

// 评论模型
type Comment struct {
	gorm.Model
	UserID  int64  `json:"user_id"`
	TweetID int64  `json:"tweet_id"`
	Content string `json:"content"`
}

// 话题热度统计
type TopicTrend struct {
	gorm.Model
	TopicID    int64 `json:"topic_id"`
	TweetCount int   `json:"tweet_count"` // 24小时内相关推文数
	Rank       int   `json:"rank"`        // 当前排名
}
